Skip to main content

Low Latency Live

(MI.TrafficType)

Overview

The Low Latency Live feature is available for sites configured for the live traffic type.

warning

The Low Latency Live feature is designed to optimize live streams for low-latency delivery, but only works if your entire workflow supports the LL-DASH or LL-HLS streaming protocols. For best results, ensure that both your origin and player are fully configured for one or both of these protocols. Enabling the rule without full end-to-end support for LL-DASH and/or LL-HLS may degrade performance rather than improve it.

Configure the Feature

To enable the Low Latency Live feature, first make sure the site is configured for the live traffic type at the site level. Although traffic type is a site-level setting, you can extend it's behavior for a specific host or path to support low-latency delivery.

To do so:

  1. Confirm that the site is configured for the live traffic type.

  2. Copy the MI.TrafficType SVTA component from the site level to the specific host or path where you want to enable low latency behavior.

  3. In the copied component, add a hints array that includes either ll-dash or ll-hls value, depending on your streaming format.

The hints array signals to the CDN that the traffic is streaming video using the Low-Latency DASH or Low-Latency HLS protocol, allowing the CDN to apply protocol-specific optimizations at the specified host or path.

This example triggers optimized processing for Low-Latency DASH:

{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-dash"
]
}
}

Supported Properties

FieldValid ValuesDescription
traffic-typeliveLow Latency Live is available for sites configured for the live traffic type.
hintsll-dash, ll-hlsSpecifies if traffic is using the Low-Latency Dash or HLS protocol.

Low Latency HLS

For Low Latency HLS, there are additional implementation steps:

  • Configure a Cache Key Management Rule to include the following query parameters in the cache key:

    • _HLS_msn
    • _HLS_part
    • _HLS_skip

    This is essential for ensuring accurate content delivery in Low Latency HLS streaming.

  • If you are using the LL-HLS protocol's EXT-X-PRELOAD-HINT functionality, consider adjusting the Read Timeout setting in the Origin Configuration.

    A client using EXT-X-PRELOAD-HINT can anticipate upcoming segments and request them before they are available from the origin. To prevent timeouts when the client requests a segment before it is ready, set the origin read timeout to 1.5 to 2.5 times the segment duration.

    For example, if segments are 2-4 seconds long, a suitable Read Timeout value is 6 seconds. The following origin configuration defines a 6 second read timeout:

    {
    "generic-metadata-type": "MI.SourceMetadataExtended",
    "generic-metadata-value": {
    "sources": [
    {
    "protocol": "https/1.1",
    "endpoints": [
    "www.example.com"
    ],
    "connection-control": {
    "byte-read-timeout-ms": 6000,
    "connection-setup-timeout-ms": 3000,
    "max-connection-retries-per-source": 3
    }
    }
    ]
    }
    }

Examples

This example triggers optimized processing for Low-Latency DASH:

{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-dash"
]
}
}


This example triggers optimized processing for Low-Latency HLS, along with the MI.Cache component, as an example of how to set up a Cache Key Management rule to include the required query parameters:

[
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-hls"
]
}
},
{
"generic-metadata-type": "MI.Cache",
"generic-metadata-value": {
"exclude-path-pattern": "",
"include-query-strings": [
"_HLS_msn",
"_HLS_skip",
"_HLS_part"
]
}
}
]


This is an example of the MI.TrafficType component, along with the MI.ComputedCacheKey component, as an example of how to set up an advanced Cache Key Management rule to include the required query parameters:

[
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-hls"
]
}
},
{
"generic-metadata-type": "MI.ComputedCacheKey",
"generic-metadata-value": {
"expression": "req.uri.path . '&' . '?' . req.uri.querykv._HLS_msn . '&' . req.uri.querykv._HLS_skip . '&' . req.uri.querykv._HLS_part"
}
}
]